<%
// config
const config = ctx.config.module('a-wechat').account.public;
const configExists=config.appID && config.appSecret;
%>

$(document).on('echo-ready', function() {
  // wechat
  if(_wechatcheckenv()) {
    if(_wechatautologin()){
      _wechatsdkinit();
    }
  }
});

function _wechatcheckenv(){
  // check iframe
  if(window.self !== window.top) return false;
  // check config
  <%- `const _configExists=${configExists?'true':'false'};`  %>
  if(!_configExists) return false;
  const ua = navigator.userAgent.toLowerCase();
  const inWechat = ua && (ua.indexOf('micromessenger') > -1 || ua.indexOf('micromessage') > -1);
  return inWechat;
}

function _wechatautologin(){
  if(util.user.op.anonymous){
    // auto login
    const url=`${env.site.serverUrl}/#!${location.href}`;
    window.location.assign(url);
    return false;
  }else{
    window.setTimeout(function(){
      $('.navbar-user .user-logout').remove();
    },0);
    return true;
  }
}

function _wechatsdkinit() {
  // jsconfig
  util.performAction({
    method: 'post',
    url: '/a/wechat/jssdk/jsconfig',
    body: {
      url: location.href.split('#')[0],
    },
  }).then(params => {
   _wechatwxinit(params);
  });
}

function _wechatwxinit(params){
  if(window.wx) return;
  util.loadScript('https://res.wx.qq.com/open/js/jweixin-1.6.0.js', function() {
    window.wx.config(params);
    window.wx.error(e => {
      console.error(e);
    });
    window.wx.ready(() => {
      $(document).trigger('wechatsdk-ready',window.wx);
    });
  });
}
